package com.cskaoyan.javase.array._5operation._0traverse;

import java.util.Arrays;

/**
 * 数组的遍历使用jdk中已存在的方法
 * Arrays是数组工具类
 * Math是数学工具类
 * Arrays.toString(数组名);
 * 注意该方法有返回值,返回值是一个字符串
 * 如果仅仅是查看数组中的元素取值,建议使用该方法.
 *
 * 关于遍历循环的两种方式:
 *      1.普通for循环
 *      2.增强for循环,是一种更高效,语法更简洁的循环遍历容器的方式,也叫foreach
 *      语法:
 *          for(数据类型 变量名 : 容器的名字){
 *              // 遍历操作语句
 *          }
 *      解释:
 *          数据类型是后面容器中装的元素的数据类型,比如遍历int类型数组,那么数据类型就是int
 *          变量名,代表容器中的每一个元素
 *          所以增强for是直接遍历容器中的元素
 *
 * 增强for和普通for的区别:
 *      1.普通for有下标,增强for没有.所以如果有使用数组下标的需求,就必须使用普通for
 *      2.增强for仅仅用做遍历容器中的元素而存在,它的作用就是访问,不能对元素做任何修改
 *      3.除开以上两个需求.增强for语法更简洁,遍历的效率更高,配合快捷键"iter"使用更方便.所以如果不是对数组元素做修改,也不需要数组下标,只是单纯遍历访问数组元素,建议优先选择增强for.(尤其是在集合中)
 *
 * @since 10:11
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        /*arr = _1new int[0];
        arr = null;
        String arrStr = Arrays.toString(arr);
        System.out.println(arrStr);*/

        // 快速使用普通for遍历数组快捷键
        // 数组名.fori
        for (int i = 0; i < arr.length; i++) {
            // System.out.println(arr[i]);
            arr[i] = 100;
        }
        System.out.println(Arrays.toString(arr));

        System.out.println("--------------");
        for (int element : arr) {
            // element就表示arr数组中的元素
            // System.out.println(element);
            element = 200;
        }
        System.out.println(Arrays.toString(arr));

        // 使用快捷键iter,会自动找到最近的容器去生成增强for
        String[] arr2 = new String[0];
        for (String s : arr2) {
            System.out.println(s);
        }
    }
}
